shortcuts section: Fix destroy
authorMatthias Clasen <mclasen@redhat.com>
Tue, 24 Nov 2015 00:48:50 +0000 (19:48 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 24 Nov 2015 00:48:50 +0000 (19:48 -0500)
The container destroy implementation does not quite work here,
so do our own.

gtk/gtkshortcutssection.c

index 3bdf0966ef96d97d2a865dc1902dc04bb63c61ee..03dac89ff007191a9d5ab6facba8619f3a5dc96d 100644 (file)
@@ -208,6 +208,29 @@ gtk_shortcuts_section_unmap (GtkWidget *widget)
   gtk_widget_unmap (GTK_WIDGET (self->stack));
 }
 
+static void
+gtk_shortcuts_section_destroy (GtkWidget *widget)
+{
+  GtkShortcutsSection *self = GTK_SHORTCUTS_SECTION (widget);
+
+  if (self->stack)
+    {
+      gtk_widget_destroy (GTK_WIDGET (self->stack));
+      self->stack = NULL;
+    }
+
+  if (self->footer)
+    {
+      gtk_widget_destroy (GTK_WIDGET (self->footer));
+      self->footer = NULL;
+    }
+
+  g_list_free (self->groups);
+  self->groups = NULL;
+
+  GTK_WIDGET_CLASS (gtk_shortcuts_section_parent_class)->destroy (widget);
+}
+
 static void
 gtk_shortcuts_section_finalize (GObject *object)
 {
@@ -304,6 +327,7 @@ gtk_shortcuts_section_class_init (GtkShortcutsSectionClass *klass)
 
   widget_class->map = gtk_shortcuts_section_map;
   widget_class->unmap = gtk_shortcuts_section_unmap;
+  widget_class->destroy = gtk_shortcuts_section_destroy;
 
   container_class->add = gtk_shortcuts_section_add;
   container_class->remove = gtk_shortcuts_section_remove;